//package com.xjk.excel;
//
//import com.xjk.date.DateTimeUtils;
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.OutputStream;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import org.apache.poi.ss.usermodel.Cell;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.ss.usermodel.Workbook;
//
///**
// * @author xjk
// * @date 2024-09-27
// */
//public class ExcelCreator<T> {
//  private Workbook 工作簿;
//  private String excel类型;
//
//
//  private Map<String,Workbook> 工作簿映射 = new HashMap<>();
//  private OutputStream writeStream;
//  private Map<String,Sheet> 工作表映射 = new HashMap<>();
//  private Map<String, List<Row>> 指定工作表行映射 = new HashMap<>();
//
//  public static final String EXCEL_XLS = "xls";
//  public static final String EXCEL_XLSX = "xlsx";
//
//  {
//    工作簿映射.put(EXCEL_XLS, new HSSFWorkbook());
//    工作簿映射.put(EXCEL_XLSX, new HSSFWorkbook());
//  }
//
//  public ExcelCreator(String excelType) {
//    this.excel类型 = excelType;
//    工作簿 = 工作簿映射.get(excelType);
//  }
//
//  public void 创建工作表(String 工作表名) {
//    Sheet 工作表 = 工作簿.createSheet(工作表名);
//    工作表映射.put(工作表名, 工作表);
//  }
//
//  public void 设置指定工作表的行(List<T> objects, String 工作表名) {
//    Sheet 工作表 = 工作表映射.get(工作表名);
//    List<Row> 工作表原始行 = 指定工作表行映射.computeIfAbsent(工作表名, k -> new ArrayList<>());
//
//    for (int i = 0; i < objects.size(); i++) {
//      Row 创建出来的行 = 工作表.createRow(i);
//      工作表原始行.add(创建出来的行);
//    }
//  }
//
//  public void 单元格处理(List<T> objects,String 工作表名){
//    List<Row> 行 = 指定工作表行映射.get(工作表名);
//    for (T object : objects) {
//      Class<?> clazz = object.getClass();
//
//
//
//    }
//  }
//
//
//
//
//  public static void main(String[] args) throws InterruptedException {
//    ExcelCreator excelCreator = new ExcelCreator(EXCEL_XLS);
////    // xls文件 (创建一个新的工作簿)
////
////    // 新建sheet
////    Sheet sheet1 = hssfWorkbook.createSheet("牛逼！");
////
////
//////    for (int i = 0; i < 10; i++) {
//////      Row row = sheet1.createRow(i);
//////      Thread.sleep(1000);
//////      for (int j = 0; j < 1; j++) {
//////
//////        行单元格处理(row, j, new Date(), DateTimeUtils.THE_TIME_FORMAT);
//////      }
//////    }
////
////    Row row = sheet1.createRow(1);
////    CreationHelper createHelper = hssfWorkbook.getCreationHelper();
////    CellStyle cellStyle = hssfWorkbook.createCellStyle();
////    cellStyle.setDataFormat(createHelper.createDataFormat().getFormat(DateTimeUtils.THE_TIME_FORMAT));
////    Cell cell = row.createCell(1);
////    cell.setCellValue(new Date());
////    cell.setCellStyle(cellStyle);
////
////    try (OutputStream outputStream = new FileOutputStream("D:\\Desktop\\test.xls")) {
////      hssfWorkbook.write(outputStream);
////    } catch (FileNotFoundException e) {
////      e.printStackTrace();
////    } catch (IOException e) {
////      e.printStackTrace();
////    }
//
//    excelCreator.创建工作表("牛逼！");
//
//
//
//
//
//
//    excelCreator.设置文件输出流("test", "D:\\Desktop");
//    excelCreator.写入Excel();
//
//
//
//
//
//
//
//
////    // xlsx文件 (创建一个新的工作簿)
////    Workbook xssfWorkbook = new XSSFWorkbook();
////    try (OutputStream outputStream = new FileOutputStream("D:\\Desktop\\test.xlsx")) {
////      xssfWorkbook.write(outputStream);
////    } catch (FileNotFoundException e) {
////      e.printStackTrace();
////    } catch (IOException e) {
////      e.printStackTrace();
////    }
//
//
//  }
//
//  private void 行字符串单元格处理(Row row, int cellIndex, String cellValue) {
//    Cell cell = row.createCell(cellIndex);
//    cell.setCellValue(cellValue);
//  }
//
//  private void 行日期单元格处理(Row row, int cellIndex, Date cellValue,String dateFormat) {
//    String value = DateTimeUtils.dateToString(cellValue, dateFormat);
//    Cell cell = row.createCell(cellIndex);
//    cell.setCellValue(value);
//  }
//
//
//  public void 设置文件输出流(String fileName,String path){
//
//    File file = new File(path + File.separator + fileName + excel类型);
//
//    if (!file.getParentFile().exists()){
//      file.getParentFile().mkdirs();
//    }
//    if (!file.exists()){
//      try {
//        file.createNewFile();
//      } catch (IOException e) {
//        e.printStackTrace();
//      }
//    }
//    try {
//      writeStream = new FileOutputStream(file);
//    } catch (FileNotFoundException e) {
//      e.printStackTrace();
//    }
//  }
//
//  public void 写入Excel() {
//    try{
//      工作簿.write(writeStream);
//    }catch (IOException e){
//      e.printStackTrace();
//    }
//  }
//}
//
